/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.tools.property.panel.impl.support

import com.android.tools.property.panel.api.TableExpansionState
import com.google.common.html.HtmlEscapers

// To show text without ellipses in a JLabel we format the text as html:
fun toHtmlString(value: String): String =
  "<html><nobr>${HtmlEscapers.htmlEscaper().escape(value)}</nobr></html>"

fun toHtmlUnderlinedString(value: String): String =
  "<html><nobr><u>${HtmlEscapers.htmlEscaper().escape(value)}</u></nobr></html>"

fun expandableText(
  value: String?,
  tableExpansionState: TableExpansionState,
  underlined: Boolean = false,
) =
  if (tableExpansionState == TableExpansionState.NORMAL) value
  else value?.let { if (underlined) toHtmlUnderlinedString(it) else toHtmlString(it) }
